package com.manda.smart.hub.common.annotation;

import java.lang.annotation.*;

/**
 * 优先级注解
 *
 * @author hongda.li
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface Priority {

    /**
     * 优先级的值
     * 根据常见的设计规范，越小的值，优先级越高
     * 默认优先级为 0
     *
     * @return 优先级的值
     */
    int value() default NORMAL_PRIORITY;

    /**
     * 常规优先级
     */
    int NORMAL_PRIORITY = 0;

    /**
     * 最低优先级
     */
    int MIN_PRIORITY = Integer.MAX_VALUE;

    /**
     * 最高优先级
     */
    int MAX_PRIORITY = Integer.MIN_VALUE;
}
